import request from '@/utils/request' // 引入封装的 axios 实例

// 查询所有角色
export const getRoleList = () => {
  return request({
    url: '/role/select',
    method: 'get',
  })
    .then((response) => {
      // 假设返回的数据结构为 { data: { list: [...] } }
      if (response && response.data && response.data.list) {
        return response.data.list.map((item) => ({
          id: item.role.roleId,
          name: item.role.roleName,
          desc: item.role.memo,
        }))
      } else {
        return []
      }
    })
    .catch((error) => {
      console.error('获取角色列表失败:', error)
      throw error
    })
}

// 新增角色
export const saveRole = (data) => {
  return request({
    url: '/role/save',
    method: 'post',
    data,
  })
    .then((response) => {
      console.log('新增角色成功:', response)
      return response
    })
    .catch((error) => {
      console.error('新增角色失败:', error)
      throw error
    })
}

// 删除角色
export const deleteRole = (id) => {
  return request({
    url: '/role/del',
    method: 'get',
    params: { id },
  })
    .then((response) => {
      console.log('删除角色成功:', response)
      return response
    })
    .catch((error) => {
      console.error('删除角色失败:', error)
      throw error
    })
}

// 批量删除角色
export const batchDeleteRoles = (ids) => {
  return request({
    url: '/role/batchDel',
    method: 'post',
    data: ids, // 直接传数组
  })
    .then((response) => {
      console.log('批量删除角色成功:', response)
      return response
    })
    .catch((error) => {
      console.error('批量删除角色失败:', error)
      throw error
    })
}

// 修改角色
export const updateRole = (data) => {
  return request({
    url: '/role/update',
    method: 'put',
    data,
  })
    .then((response) => {
      console.log('修改角色成功:', response)
      return response
    })
    .catch((error) => {
      console.error('修改角色失败:', error)
      throw error
    })
}
